package com.mornd.gulimall.product.entity.vo.spusave;

import lombok.Getter;
import lombok.Setter;

import javax.validation.Valid;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;

@Getter
@Setter
public class SpuSaveVo {

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不能为空")
    @Size(max = 200, message = "商品名称不能超过{max}个字符")
    private String spuName;

    /**
     * 分类
     */
    @NotNull(message = "所属分类不能为空")
    @Min(1)
    private Long catalogId;

    /**
     * 品牌
     */
    @NotNull(message = "所属品牌不能为空")
    @Min(1)
    private Long brandId;

    /**
     * 重量
     */
    @NotNull(message = "商品重量不能为空")
    @Min(value = 0, message = "商品重量不能低于{value}")
    private BigDecimal weight;

    /**
     * 积分
     */
    //@Valid //级联校验
    private @Valid BoundsVo bounds;

    /**
     * 描述
     */
    @Size(max = 1000)
    private String spuDescription;

    /**
     * 商品图集
     */
    @NotEmpty(message = "商品图集不能为空")
    private List<@NotBlank(message = "图集不能包含空字符") String> imgs;

    /**
     * 介绍图集
     */
    private List<@NotBlank(message = "介绍图集不能包含空字符") String> descImgs;

    /**
     * 规格参数集合
     */
    @NotEmpty(message = "规格参数不能为空")
    private List<@Valid SpecVo> specs;

    /**
     * sku 列表
     */
    @NotEmpty(message = "商品sku信息不能为空")
    private List<@Valid SkuVo> skus;

}
